package com.zc.study.designPattern.结构型设计模式.compositePattern;

import java.util.ArrayList;

/**
 * 文件夹类:容器构建
 */
public class Folder extends AbstractFile{
    //定义集合fileList,用于存储abstractFile类型的成员
    private ArrayList<AbstractFile> fileList = new ArrayList<>();
    private String name ;

    public Folder(String name) {
        this.name = name;
    }

    @Override
    public void add(AbstractFile file) {
        fileList.add(file);
    }

    @Override
    public void remove(AbstractFile file) {
        fileList.remove(file);
    }

    @Override
    public AbstractFile getChild(int i) {
        return fileList.get(i);
    }

    @Override
    public void killVirus() {
        System.out.println("***对文件夹'"+name+"'开始杀毒");//模拟杀毒
        //递归函数调用成员构建的killVirus()方法
        for(Object o:fileList){
            ((AbstractFile)o).killVirus();
        }

    }
}
